package org.jeecg.modules.classes.service;

import org.apache.ibatis.annotations.Param;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.classes.entity.CouClass;
import com.baomidou.mybatisplus.extension.service.IService;
//import org.jeecgframework.minidao.util.Classes;

import java.util.List;

/**
 * @Description: cou_class
 * @author: baochangrong
 * @Date: 2022-02-10
 * @Version: V1.0
 */
public interface ICouClassService extends IService<CouClass> {
    List<CouClass> queryAll(CouClass couClass);

    List<CouClass> queryByGradeId(String gradeId);
    CouClass getCouClassByUserID(String userId);
    List<CouClass> getCouClassListByUser(@Param("loginUser") LoginUser loginUser,@Param("schoolYearId") String schoolYearId,@Param("semesterId") String semesterId);
    /**
     * 批量创建用户登录账号
     * @param tenantId
     * @param password
     * @param ids
     * @param loginUser
     * @return
     */
    boolean createUserByClassIds(String tenantId,String password,String  ids, LoginUser loginUser,boolean force);


    /**
     * 批量升级班级名称：批量改名，把班级名称批量替换
     * @param ids 班级ids列表
     * @param gradeId 年级id
     * @param force 是否强制执行(重复升级时候强制升级会替换班级名称）
     * @return
     */
    boolean updateClassForGradeByIds(List ids, String gradeId,boolean force);
    /**
     * 批量升级班级名称：批量改名，把班级名称批量替换
     * @param ids 班级ids列表
     * @param gradeId 年级id
     * @param force 是否强制执行(重复升级时候强制升级会替换班级名称）
     * @return
     */
    boolean updateClassForGradeByIds(String ids, String gradeId,boolean force);
    /**
     * 根据年级id批量升级班级,把指定年级下的班级全升级为新的年级
     * @param oldGradeId 需要升级的旧的年级id
     * @param newGradeId 升级以后新的年级id
     * @param force 是否强制执行(重复升级时候强制升级会替换班级名称）
     * @return
     */
    boolean updateClassByGradeId(String oldGradeId, String newGradeId,boolean force);
    /**
     * 根据班级号对应的字典码获取班级的名称
     * @param couClass
     * @return
     */
    String getNewClassNameByClassNumber(CouClass couClass);
}
